#study1从 print 到 变量 再到 变量的类型与变量类型的转换

print("hello,world!")
print("test")#输出函数

print("te\nst")#转义字符\n r t b

print("测试")#输出中文

print("http://www.baidu.com")#输出网址
print("https://www.bilibili.com/video/BV1wD4y1o7AS?p=7")

print("xx说：‘xx’")#单引号似乎不会影响输出结果

#若不希望转义字符起作用，可添加“/”（原字符）

import keyword
print(keyword.kwlist)#保留字

name='test'#变量
print(name)#name的值
print('标识',id(name))#name的标识
print('类型',type(name))#name的类型

#注:当多次name的时候，变量会指向最新的name（新的空间）such as:
name='test'
name='TEST'
print(name)#最终得到"TEST"

#整数类型：int、浮点数类型：float、布尔类型：boll、字符串类型：str

name=750#整数类型。可以表示正数、负数、0。16进制：0x、10进制：默认、8进制：0o、2进制：0b
print(name,type(name))
#或
n1=750
n2=-750
n3=0
print(n1,n2,n3)
#不同进制的演示
print(0b1011101110)
print(int('1011101110',2))#转换为10进制

a=2.71828#浮点类型
print(a,type(a))
A1=1.1#浮点运算与不精确性
A2=2.2
print(A1+A2)
#浮点运算不精确的解决方案
from decimal import Decimal
print(Decimal('1.1')+Decimal('2.2'))

#布尔类型
P=True
p=False
print(P,type(P),p,type(p))
#布尔值可以直接进行整数运算
print(p+1+P)

#字符串
N='hello,world!'
print(N,type(N))#单引号/双引号的字符串只能在一行(单/双引号不影响结果）
print(N and type(N))#用and连接似乎自动忽略N，只输出type(N)
n='''hello 
world!'''
print(n,type(n))#三个单/双引号允许有换行的字符串

#数据类型的转换；str（……）转化成字符类型、int(……）转换成整数(字符串、浮点不可转换）、float(……)转化成浮点数（字符串不可转换）
name='San Zhang'
age=35#the test of the age
print('hello everyone!My name is '+name+',My age is '+str(age)+'.')#'+'是连接符；
#整数转成浮点的例子
test1=2
print('……'+str(float(test1))+'')#整数转小数转字符串
test2=2.71828
print(int(test2))#小数转整数
test3='2.71828'
print(int(float(test3)))#test3无法直接转换成int类型